package com.zfei.gfb.api;


import com.zfei.gfb.api.domain.User;
import com.zfei.gfb.bean.StatusException;

import java.util.List;

/**
 * 用户服务
 *
 * @author fgh
 */
public interface UserService {


    /**
     * 通过openid获取uid
     *
     * @param openid    openid
     * @param data      文本
     * @param signature 签名
     * @return uid
     */
    String uid(String openid, String data, String signature) throws StatusException;

    /**
     * 根据账号类型获取用户
     *
     * @param account 账号
     * @param type    账号类型
     * @return user
     */
    User get(String account, byte type) throws StatusException;

    /**
     * 根据账号类型批量获取用户
     *
     * @param accounts 账号列表
     * @param type     账号类型
     * @return user列表
     */
    List<User> list(List<String> accounts, byte type) throws StatusException;


    /**
     * 获取用户
     *
     * @param uid uid
     * @return user
     */
    User get(String uid) throws StatusException;

    /**
     * 批量获取用户
     *
     * @param uids uid列表
     * @return user列表
     */
    List<User> list(List<String> uids) throws StatusException;


    /**
     * 根据手机号获取用户
     *
     * @param mobile 手机号
     * @return user
     */
    User getByMobile(String mobile) throws StatusException;

    /**
     * 根据手机号批量获取用户
     *
     * @param mobiles 手机号列表
     * @return user列表
     */
    List<User> listByMobile(List<String> mobiles) throws StatusException;

}
